/* 弹性布局 - 居中 */
.box-flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* 弹性布局 - y轴居中 */
.box-flex-center-y {
    display: flex;
    align-items: center;
}

/* 弹性布局 - x轴居中 */
.box-flex-center-x {
    display: flex;
    justify-content: center;
}

/* 弹性布局 - 均匀分配，两侧靠边 */
.box-flex-space {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* 网格布局 - 3 */
.box-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10rpx;
}

/* 视图绝对定位 - 上，左 */
.box-position-fixed-top-left {
    position: fixed;
    top: 0;
    left: 0;
}

/* 绝对定位 - 下，左 */
.box-position-absolute-bottom-left {
    position: absolute;
    bottom: 0;
    left: 0;
}

/* 绝对定位 - 上，左 */
.box-position-absolute-top-left {
    position: absolute;
    top: 0;
    left: 0;
}

/* loading样式 */
.box-loading {
    padding: 30rpx 0;
}

/* IOS顶部安全区 */
.ios-top {
    height: env(safe-area-inset-top);
}

/* IOS底部安全区 */
.ios-bottom {
    height: env(safe-area-inset-bottom);
}